package com.yueqian.sc.dao;

import com.yueqian.sc.bean.Course;
import com.yueqian.sc.bean.CourseVo;
import com.yueqian.sc.bean.Users;

import java.util.List;

/**
 * 课程dao
 */
public interface ICourseDao {
    /**
     * 添加课程
     * @param course
     * @return
     */
    public boolean addCourse(Course course);

    /**
     * 查询所有课程（支持模糊查询，支持分页）
     * @param keywords 关键字（课程名称或者教师名称）
     * @param startIndex 开始索引
     * @param pageSize 每页显示的条数
     * @return
     */
    public List<CourseVo> queryAll(String keywords,int startIndex,int pageSize);

    /**
     * 查询所有未选课程（支持模糊查询，支持分页）
     * @param studentId 学生编号
     * @param keywords 关键字（课程名称或者教师名称）
     * @param startIndex 开始索引
     * @param pageSize 每页显示的条数
     * @return
     */
    public List<CourseVo> queryUnSelectedAll(int studentId,String keywords,int startIndex,int pageSize);

    /**
     * 查询所有已选课程（支持模糊查询，支持分页）
     * @param studentId 学生编号
     * @param keywords 关键字（课程名称或者教师名称）
     * @param startIndex 开始索引
     * @param pageSize 每页显示的条数
     * @return
     */
    public List<CourseVo> querySelectedAll(int studentId,String keywords,int startIndex,int pageSize);

    /**
     * 课程总条目数
     * @param keywords
     * @return
     */
    public int courseCount(String keywords);

    /**
     * 未选课程总条目数
     * @param studentId 学生编号
     * @param keywords
     * @return
     */
    public int unSelectedcCourseCount(int studentId,String keywords);

    /**
     * 已选课程总条目数
     * @param studentId 学生编号
     * @param keywords
     * @return
     */
    public int selectCourseCount(int studentId,String keywords);

    /**
     * 根据courseId修改课程信息
     *
     * @param course
     * @return
     */
    public boolean updateCourse(Course course);



    /**
     * 根据courseId删除课程（假删除）
     *
     * @param courseId
     * @return
     */
    public boolean deleteCourse(int courseId);

}
